package chat

import "fmt"

type ChannelType int32

const (
	ChannelTypeNone    ChannelType = 0 //世界
	ChannelTypeUnion   ChannelType = 1 //工会联盟
	ChannelTypePrivate ChannelType = 2 //私聊
)

type Channel struct {
	Id  ChannelType `json:"id" bson:"id"`   //频道
	Tar string      `json:"tar" bson:"tar"` //频道ID。私聊时对方UID
}
type Message struct {
	Id      uint64         `json:"id"`                               //唯一ID，仅仅保证每次服务器重启后唯一
	Uid     string         `json:"uid" bson:"uid"`                   //玩家UID
	Msg     string         `json:"msg" bson:"msg"`                   //内容
	Args    map[string]any `json:"args" bson:"args"`                 //可能需要的参数,玩家名称,等级,ICON等
	Time    int64          `json:"time" bson:"time"`                 //发布时间
	Channel *Channel       `json:"channel,omitempty" bson:"channel"` //频道,默认全服？
}

func (this *Message) Set(k string, v any) {
	if this.Args == nil {
		this.Args = map[string]any{}
	}
	this.Args[k] = fmt.Sprintf("%v", v)
}
